Cloud-based datacenters have thousands of virtual machines (VMs) executing on hosts. The hosts reside in racks within the datacenters. The large size of the datacenters adds to the difficulty of locating hardware within the datacenters. Some existing systems use global positioning systems (GPS) to locate the physical position of the racks within the datacenters for maintenance and upgrades. Other existing systems use radio frequency identification (RFID) and long-range navigation (LORAN). Even with the knowledge of the physical rack locations, however, the existing systems lack a mechanism for determining the physical location of each VM executing on the hosts in the datacenter.
Further complicating this effort, VMs often move from host to host, and from datacenter to datacenter. VMs are migrated as their resource needs change, as the available resources within the datacenters change, for load-balancing purposes, for backup and restore operations, and the like. For example, thousands of VMs may be in the process of migration at any one point in time. Tracking the location of the VMs during these concurrent migrations is difficult.
In some existing systems, an administrator manually identifies the target hosts to receive the VMs to be moved. These existing systems lack an automated mechanism for determining where to locate each VM to be moved within the datacenters, and the conditions under which to move the VMs.